Sink (computing)

In computing, a sink or event sink is a class or function designed to receive incoming events from another object or function. This is commonly implemented in C++ as callbacks. Object-oriented languages, such as Java and C#, have built-in support for sinks by allowing events to be fired to delegate functions.

It can also be considered the end-point or output point. For example, a buffer stream would often have a source (where you put the data into) and a sink (where the data gets written out to). Another way of thinking about it could be like a black hole - the source is where everything gets sucked in and the sink is where it all gets spit out at the other end. You will often see this in C++ and hardware related programming.

The word sink has been used for both input and output in the industry.